package com.lagou.sqlSession;

import com.lagou.pojo.Configuration;
import com.lagou.pojo.MappedStatement;

import java.util.List;

public interface Executor {

    /**
     * 执行查询方法
     *
     * @param configuration   配置信息
     * @param mappedStatement SQL语句、参数、返回值等信息
     * @param params          参数
     */
    <E> List<E> query(Configuration configuration, MappedStatement mappedStatement, Object... params) throws Exception;

    /**
     * 执行增删改方法
     *
     * @param configuration   配置信息
     * @param mappedStatement SQL语句、参数、返回值等信息
     * @param params          参数
     * @return rowCount 更新成功的行数
     */
    int doUpdate(Configuration configuration, MappedStatement mappedStatement, Object... params) throws Exception;

}
